package com.zznj.xzjc.net.rxjava;


import com.zznj.xzjc.bean.index.AjblData;
import com.zznj.xzjc.bean.index.AjcxData;
import com.zznj.xzjc.bean.index.AlkData;
import com.zznj.xzjc.bean.index.CuiBanResult;
import com.zznj.xzjc.bean.index.DictionaryData;
import com.zznj.xzjc.bean.index.FileData;
import com.zznj.xzjc.bean.index.HdlxData;
import com.zznj.xzjc.bean.index.HdlxDetailResult;
import com.zznj.xzjc.bean.index.JdzxData;
import com.zznj.xzjc.bean.index.JrdwData;
import com.zznj.xzjc.bean.index.KnowledgeAndWorkResult;
import com.zznj.xzjc.bean.index.MyCollectDataResult;
import com.zznj.xzjc.bean.index.PushData;
import com.zznj.xzjc.bean.index.SadsrData;
import com.zznj.xzjc.bean.index.SadwData;
import com.zznj.xzjc.bean.index.StepData;
import com.zznj.xzjc.bean.index.XsglData;
import com.zznj.xzjc.net.entity.AreaBean;
import com.zznj.xzjc.net.entity.BaseBean;
import com.zznj.xzjc.net.entity.DiaoChaQuZhengBean;
import com.zznj.xzjc.net.entity.DictionaryBean;
import com.zznj.xzjc.net.entity.IndexWorkAndAnLiBean;
import com.zznj.xzjc.net.entity.JcjyBean;
import com.zznj.xzjc.net.entity.JcjyxqResult;
import com.zznj.xzjc.net.entity.LcjdBean;
import com.zznj.xzjc.net.entity.LoginBean;
import com.zznj.xzjc.net.entity.OrgZdgxResult;
import com.zznj.xzjc.net.entity.XsglxqResult;
import com.zznj.xzjc.net.entity.ZzjgBean;

import java.util.List;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

interface APIService {

    /**
     * 登录接口
     */
    @POST("xzapi/login")
    Observable<BaseBean<LoginBean>> login(@Body RequestBody requestBody);

    @POST("caseSource/getPopularFeelingsList.ht")
    Observable<BaseBean> getIndexZuiXinXianSuo(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/system/addSysFeedback")
    Observable<BaseBean> addSysFeedback(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("solr/search.ht")
    Observable<BaseBean> getFindXianSuoList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("caseSource/casePenaltyGet.ht")
    Observable<BaseBean> casePenaltyGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/crimeCaseGet.ht")
    Observable<BaseBean> crimeCaseGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/complaintsReportGet.ht")
    Observable<BaseBean> complaintsReportGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/leaderHotlineGet.ht")
    Observable<BaseBean> leaderHotlineGet(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("caseSource/caseJudgmentGet.ht")
    Observable<BaseBean> caseJudgmentGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/publicOpinionGet.ht")
    Observable<BaseBean> publicOpinionGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/ourClueSave.ht")
    Observable<BaseBean> ourClueSave(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/distribute.ht")
    Observable<BaseBean> distribute(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("knowledge/get.ht")
    Observable<BaseBean<KnowledgeAndWorkResult>> knowledgeGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("knowledge/lawSubjectSelector.ht")
    Observable<BaseBean> lawSubjectSelector(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getOrg.ht")
    Observable<BaseBean<OrgZdgxResult>> getOrg(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/caseJudgeNotDealSave.ht")
    Observable<BaseBean> caseJudgeNotDealSave(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/environmentSuperviseGet.ht")
    Observable<BaseBean> environmentSuperviseGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("myCollect/isCollection.ht")
    Observable<BaseBean> isCollection(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("myCollect/getMyCollect.ht")
    Observable<BaseBean<MyCollectDataResult>> getMyCollect(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("myCollect/addCollect.ht")
    Observable<BaseBean> addCollect(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @GET("xzapi/caseQuery/queryCaseStep")
    Observable<BaseBean<List<StepData>>> queryCaseStep(@Header("cookie") String cookie, @Query("caseId") String caseId);


    @POST("myCollect/cancelCollect.ht")
    Observable<BaseBean> cancelCollect(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/message/getAll")
    Observable<BaseBean<List<PushData>>> getMessageList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/system/checkApkUpd")
    Observable<BaseBean<FileData>> getVersionInfo(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("zxapi/caseClue/getHaveFenpaiClueList")
    Observable<BaseBean<List<XsglData>>> getHaveFenpaiClueList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("zxapi/caseClue/getClueInfoList")
    Observable<BaseBean<List<XsglData>>> getClueInfoList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("xzapi/home/feisuCaseData")
    Observable<BaseBean<AjblData>> feisuCaseData(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/home/supervisePerformData")
    Observable<BaseBean<JdzxData>> supervisePerformData(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/home/jierudanweiData")
    Observable<BaseBean<JrdwData>> jierudanweiData(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/investigationList.ht")
    Observable<BaseBean<List<DiaoChaQuZhengBean>>> getDiaoChaQuZhengList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/message/updStatus")
    Observable<BaseBean> updStatus(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("xzapi/caseQuery/chufaQuery")
    Observable<BaseBean<List<AjcxData>>> chufaQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    @POST("xzapi/caseQuery/feisuQuery")
    Observable<BaseBean<List<AjcxData>>> feisuQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    @POST("xzapi/caseQuery/companySearch")
    Observable<BaseBean<List<SadwData>>> companySearch(@Header("cookie") String cookie, @Body RequestBody requestBody);
    @POST("xzapi/caseQuery/suspectSearch")
    Observable<BaseBean<List<SadsrData>>> suspectSearch(@Header("cookie") String cookie, @Body RequestBody requestBody);
    @POST("xzapi/caseQuery/caseList")
    Observable<BaseBean<List<AjcxData>>> caseList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("xzapi/caseQuery/showCaseByXianyiren")
    Observable<BaseBean<List<AjcxData>>> showCaseByXianyiren(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/caseQuery/showCaseByCompany")
    Observable<BaseBean<List<AjcxData>>> showCaseByCompany(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @GET("xzapi/caseWarn/urgeTips")
    Observable<BaseBean<CuiBanResult>> urgeTips(@Header("cookie") String cookie, @Query("caseId") String caseId);

    @GET("xzapi/caseWarn/urgeProposalTips")
    Observable<BaseBean<CuiBanResult>> urgeProposalTips(@Header("cookie") String cookie, @Query("proposalId") String proposalId);


    @POST("xzapi/communication/alreadyReplyList")
    Observable<BaseBean<List<HdlxData>>> alreadyReplyList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/communication/noReplyList")
    Observable<BaseBean<List<HdlxData>>> noReplyList(@Header("cookie") String cookie, @Body RequestBody requestBody);



    @GET("xzapi/communication/sendDetail")
    Observable<BaseBean<HdlxDetailResult>> hdlxSendDetail(@Header("cookie") String cookie, @Query("communionId") String communionId);

    @GET("xzapi/communication/receiveDetail")
    Observable<BaseBean<HdlxDetailResult>> receiveDetail(@Header("cookie") String cookie, @Query("caseId") String receiveId);


    @POST("xzapi/caseWarn/timeOutCaseList")
    Observable<BaseBean<List<LcjdBean>>> timeOutCaseList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("xzapi/caseWarn/amountList")
    Observable<BaseBean<List<LcjdBean>>> amountList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/caseWarn/timeOutProposalList")
    Observable<BaseBean<List<LcjdBean>>> timeOutProposalList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("xzapi/proposal/notReplyList")
    Observable<BaseBean<List<JcjyBean>>> notReplyList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/proposal/sendList")
    Observable<BaseBean<List<JcjyBean>>> sendList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/proposal/verifyList")
    Observable<BaseBean<List<JcjyBean>>> verifyList(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("xzapi/proposal/waitList")
    Observable<BaseBean<List<JcjyBean>>> waitList(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @GET("xzapi/proposal/sendDetail")
    Observable<BaseBean<JcjyxqResult>> sendDetail(@Header("cookie") String cookie, @Query("proposalId") String proposalId);

    @GET("zxapi/caseClue/getClueDetail")
    Observable<BaseBean<XsglxqResult>> getClueDetail(@Header("cookie") String cookie, @Query("clueId") String clueId);



    //获取字典信息
    @POST("xzapi/system/getDicByKey")
    Observable<BaseBean<List<DictionaryData>>> getDicByKey(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("system/getDistrict.ht")
    Observable<BaseBean<List<AreaBean>>> getDistrict(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getDistrictTreeData.ht")
    Observable<BaseBean<List<AreaBean>>> getDistrictTreeData(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getDistrictAll.ht")
    Observable<BaseBean<List<AreaBean>>> getDistrictAll(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("sysFile/delEvidenceMaterial.ht")
    Observable<BaseBean> delEvidenceMaterial(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/ourClueGet.ht")
    Observable<BaseBean<DiaoChaQuZhengBean>> ourClueGet(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/finishSurvey.ht")
    Observable<BaseBean> finishSurvey(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("ourClue/getEvidenceDemand.ht")
    Observable<BaseBean<String>> getEvidenceDemand(@Header("cookie") String cookie, @Body RequestBody requestBody);


    @POST("knowledge/getNewPublishNotice.ht")
    Observable<BaseBean<IndexWorkAndAnLiBean>> getIndexWorkAndAnLi(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("system/getDictionary.ht")
    Observable<BaseBean<List<DictionaryBean>>> getFindXianSuoDictionary(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("knowledge/getLawSubjectByOrgName.ht")
    Observable<BaseBean> getLawSubjectByOrgName(@Header("cookie") String cookie, @Body RequestBody requestBody);



    @POST("ourClue/evidenceMaterialSave.ht")
    Observable<BaseBean> evidenceMaterialSave(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("sysFile/getHttpUrlById.ht")
    Observable<BaseBean<String>> getHttpUrlById(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("caseSource/getCaseByJudgeId.ht")
    Observable<BaseBean> getCaseByJudgeId(@Header("cookie") String cookie, @Body RequestBody requestBody);

    @POST("xzapi/caseLib/searchCaseLib")
    Observable<BaseBean<List<AlkData>>> searchCaseLib(@Header("cookie") String cookie, @Body RequestBody requestBody);

    //获取分派列表
    @GET("zxapi/caseClue/getAssignClueOrg")
    Observable<BaseBean<LoginBean>> getAssignClueOrg(@Header("cookie") String cookie,@Query("page") int page, @Query("clueId") String clueId);

    //分派操作
    @GET("zxapi/caseClue/clueFenpai")
    Observable<BaseBean<LoginBean>> clueFenpai(@Header("cookie") String cookie,@Query("receiveOrg") String receiveOrg, @Query("clueId") String clueId);


    //文件上传
    @POST("sysFile/uploadFile.ht")
    Observable<BaseBean<List<DictionaryBean>>> uploadFile(@Header("cookie") String cookie, @Body RequestBody requestBody);

    //获取用户信息
    @GET("xzapi/appUser/detail")
    Observable<BaseBean<LoginBean>> getUser(@Header("cookie") String cookie);

    //获取用户信息
    @POST("xzapi/appUser/edit")
    Observable<BaseBean> updateUser(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //获取用户信息
    @GET("xzapi/system/getDistrictByJb")
    Observable<BaseBean<List<AreaBean>>> getDistrictByJb(@Header("cookie") String cookie);

    @GET("xzapi/system/getRecOrgTree")
    Observable<BaseBean<List<ZzjgBean>>> getRecOrgTree(@Header("cookie") String cookie);

    @GET("xzapi/caseLib/getAreaList")
    Observable<BaseBean<List<String>>> getAreaList(@Header("cookie") String cookie);


    @GET("xzapi/system/getOrgTreeData")
    Observable<BaseBean<List<ZzjgBean>>> getOrgTreeData(@Header("cookie") String cookie);




    //行政受理
    @POST("xzapi/caseSupervision/acceptCaseQuery")
    Observable<BaseBean<List<LcjdBean>>> acceptCaseQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //裁定同意撤回强制执行申请案件列表
    @POST("xzapi/caseSupervision/agreeUndoEnforceQuery")
    Observable<BaseBean<List<LcjdBean>>> agreeUndoEnforceQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //申请强制执行案件列表
    @POST("xzapi/caseSupervision/applyEnforceQuery")
    Observable<BaseBean<List<LcjdBean>>> applyEnforceQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //法院立案案件列表
    @POST("xzapi/caseSupervision/courtLianQuery")
    Observable<BaseBean<List<LcjdBean>>> courtLianQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //法院不予立案案件列表
    @POST("xzapi/caseSupervision/courtNoLianQuery")
    Observable<BaseBean<List<LcjdBean>>> courtNoLianQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //催告案件列表
    @POST("xzapi/caseSupervision/cuiGaoQuery")
    Observable<BaseBean<List<LcjdBean>>> cuiGaoQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //法院受理案件列表
    @POST("xzapi/caseSupervision/determineAcceptQuery")
    Observable<BaseBean<List<LcjdBean>>> determineAcceptQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //裁定准予执行案件列表
    @POST("xzapi/caseSupervision/enforceQuery")
    Observable<BaseBean<List<LcjdBean>>> enforceQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //执行完毕案件列表
    @POST("xzapi/caseSupervision/executionFinishedQuery")
    Observable<BaseBean<List<LcjdBean>>> executionFinishedQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //终结执行案件列表
    @POST("xzapi/caseSupervision/executionTerminatedQuery")
    Observable<BaseBean<List<LcjdBean>>> executionTerminatedQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //结案案件列表
    @POST("xzapi/caseSupervision/jieanQuery")
    Observable<BaseBean<List<LcjdBean>>> jieanQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //裁定不予执行案件列表
    @POST("xzapi/caseSupervision/noPerformQuery")
    Observable<BaseBean<List<LcjdBean>>> noPerformQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //法院不予受理案件列表
    @POST("xzapi/caseSupervision/refuseAcceptQuery")
    Observable<BaseBean<List<LcjdBean>>> refuseAcceptQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //行政撤案案件列表
    @POST("xzapi/caseSupervision/returnCaseQuery")
    Observable<BaseBean<List<LcjdBean>>> returnCaseQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //裁定终结本次执行案件列表
    @POST("xzapi/caseSupervision/terminationPerformQuery")
    Observable<BaseBean<List<LcjdBean>>> terminationPerformQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //撤销强制执行案件列表
    @POST("xzapi/caseSupervision/undoEnforceQuery")
    Observable<BaseBean<List<LcjdBean>>> undoEnforceQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //行政处罚案件列表
    @POST("xzapi/caseSupervision/xingzhengChufaQuery")
    Observable<BaseBean<List<LcjdBean>>> xingzhengChufaQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //行政复议案件列表
    @POST("xzapi/caseSupervision/xingzhengFuYiQuery")
    Observable<BaseBean<List<LcjdBean>>> xingzhengFuYiQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //行政立案案件列表
    @POST("xzapi/caseSupervision/xingzhengLianQuery")
    Observable<BaseBean<List<LcjdBean>>> xingzhengLianQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //行政不立案案件列表
    @POST("xzapi/caseSupervision/xingzhengNoLianQuery")
    Observable<BaseBean<List<LcjdBean>>> xingzhengNoLianQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
    //行政执行案件列表
    @POST("xzapi/caseSupervision/xingzhengPerformQuery")
    Observable<BaseBean<List<LcjdBean>>> xingzhengPerformQuery(@Header("cookie") String cookie, @Body RequestBody requestBody);
}
